package com.anpy.bill.service;

import com.anpy.bill.model.param.DateLineCreateDTO;
import com.anpy.bill.model.param.DateLineQueryDTO;
import com.anpy.bill.model.param.DateLineUpdateDTO;
import com.anpy.bill.entity.DateLineEntity;
import com.anpy.bill.model.vo.DateLineVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * 日历事件服务接口
 */
public interface DateLineService extends IService<DateLineEntity> {

    /**
     * 创建日历事件
     * @param createDTO 创建请求
     * @param userId 用户ID
     * @return 是否成功
     */
    boolean createDateLine(DateLineCreateDTO createDTO, Integer userId);

    /**
     * 更新日历事件
     * @param updateDTO 更新请求
     * @param userId 用户ID
     * @return 是否成功
     */
    boolean updateDateLine(DateLineUpdateDTO updateDTO, Integer userId);

    /**
     * 删除日历事件
     * @param id 事件ID
     * @param userId 用户ID
     * @return 是否成功
     */
    boolean deleteDateLine(Long id, Integer userId);

    /**
     * 根据ID获取日历事件详情
     * @param id 事件ID
     * @param userId 用户ID
     * @return 事件详情
     */
    DateLineVO getDateLineDetail(Long id, Integer userId);

    /**
     * 分页查询日历事件
     * @param queryDTO 查询条件
     * @param userId 用户ID
     * @return 分页结果
     */
    IPage<DateLineVO> queryDateLines(DateLineQueryDTO queryDTO, Integer userId);
}
